package com.tanhua.config.template;

import cn.hutool.core.date.DateUtil;
import com.aliyun.oss.OSS;
import com.aliyun.oss.OSSClientBuilder;
import com.tanhua.config.properties.OssProperties;
import org.springframework.beans.factory.annotation.Autowired;

import java.io.InputStream;
import java.util.Date;
import java.util.UUID;

public class OssTemplate {

    @Autowired
    private OssProperties ossProperties;

    public OssTemplate(OssProperties ossProperties) {
        this.ossProperties = ossProperties;
    }

    public String upload(InputStream inputStream, String fileName){

        String filePath = DateUtil.format(new Date(),"yyyy/MM/dd")+ UUID.randomUUID() + fileName.substring(fileName.lastIndexOf("."));

        // yourEndpoint填写Bucket所在地域对应的Endpoint。以华东1（杭州）为例，Endpoint填写为https://oss-cn-hangzhou.aliyuncs.com。
//        String endpoint = "oss-cn-zhangjiakou.aliyuncs.com";
        // (keyId,Secret改成变量)阿里云主账号AccessKey拥有所有API的访问权限，风险很高。强烈建议您创建并使用RAM账号进行API访问或日常运维，请登录 https://ram.console.aliyun.com 创建RAM账号。

        // 创建OSSClient实例。
        OSS ossClient = new OSSClientBuilder().build(ossProperties.getEndpoint(), ossProperties.getAccessKeyId(),ossProperties.getAccessKeySecret());

        // 依次填写Bucket名称（例如examplebucket）和Object完整路径（例如exampledir/exampleobject.txt）。Object完整路径中不能包含Bucket名称。
        ossClient.putObject(ossProperties.getBucketName() , filePath , inputStream);
        //云服务存储空间：Bucket      //文件存储路径
        // 关闭OSSClient。
        ossClient.shutdown();

        return ossProperties.getUrl() + filePath;
    }
}
